package com.neomanager.common.dao;

import java.util.ArrayList;
import java.util.Map;

import org.apache.log4j.Logger;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

public class CommonDao extends SqlMapClientDaoSupport
{
	public Logger logger = Logger.getLogger(this.getClass());

	/**
	 * 첨부파일 등록
	 */
	public void processFileUpload(Map<String, String> param) throws DataAccessException
	{
		logger.info("첨부파일 등록 DAO");
		getSqlMapClientTemplate().insert("common.insertFileInfo", param);
        return;
	}

	/**
	 * 통합게시판 정보
	 */
	public Map<String, Object> selectFileInfoView(Map<String, Object> param) throws DataAccessException
	{
		logger.info("첨부파일 조회 DAO");
		@SuppressWarnings("unchecked")
		Map<String, Object> viewMap = (Map<String, Object>)getSqlMapClientTemplate().queryForObject("common.selectFileInfoView", param);
		return viewMap;
	}

	/**
	 * 통합게시판 정보
	 */
	public ArrayList<Map<String, Object>> selectFileInfoList(Map<String, Object> param) throws DataAccessException
	{
		logger.info("첨부파일 조회 DAO");
		@SuppressWarnings("unchecked")
		ArrayList<Map<String, Object>> rslist = (ArrayList<Map<String, Object>>) getSqlMapClientTemplate().queryForList("common.selectFileInfo", param);
        return rslist;
	}
	
	/**
	 * 첨부파일 수정
	 */	
	public void updateFileInfo(Map<String, String> param) throws DataAccessException {
		logger.info("첨부파일 수정 DAO");
		getSqlMapClientTemplate().update("common.updateFileInfo", param);
        return;
	}
	
	/**
	 * 첨부파일 삭제
	 */	
	public void deleteFileInfo(Map<String, Object> param) throws DataAccessException {
		logger.info("첨부파일 삭제 DAO");
		getSqlMapClientTemplate().update("common.deleteFileInfo", param);
        return;
	}
	
	/**
	 * 코멘트 등록
	 */
	public void insertCommentInfo(Map<String, Object> param) throws DataAccessException
	{
		logger.info("코멘트 등록 DAO");
		getSqlMapClientTemplate().insert("common.insertCommentInfo", param);
        return;
	}
	
	/**
	 * 코멘트 조회
	 */
	public ArrayList<Map<String, Object>> selectCommentList(Map<String, Object> param) throws DataAccessException
	{
		logger.info("코멘트 조회 DAO");
		@SuppressWarnings("unchecked")
		ArrayList<Map<String, Object>> rslist = (ArrayList<Map<String, Object>>) getSqlMapClientTemplate().queryForList("common.selectCommentInfo", param);
        return rslist;
	}
	
	/**
	 * 코멘트 답글관련 STEP 수정
	 */
	public void updateCommentStep(Map<String, Object> param) throws DataAccessException
	{
		logger.info("통합게시판 답글관련 STEP 수정 DAO");
		getSqlMapClientTemplate().insert("common.updateCommentStep", param);
        return;
	}
	
	/**
	 * 코멘트 삭제
	 */	
	public void deleteCommentInfo(Map<String, Object> param) throws DataAccessException {
		logger.info("코멘트 삭제 DAO");
		getSqlMapClientTemplate().update("common.deleteCommentInfo", param);
        return;
	}
}
